﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Domain.Model.Repositories;
using Infrastructure.Base.InDatabase;
using Domain.Model.SecretariasDeTransito;
using Domain.Model.Vehiculos;
using Domain.Model.Infracciones;
using Domain.Model.Agentes;
using Domain.Model.Infractores;
using Domain.Model.Direcciones;
using Domain.Model.Comparendos;
using Application.WebServices;

namespace InfraccionesWeb.Formularios
{
    public partial class NuevoComparendo : System.Web.UI.Page
    {

        //referencia a los servicios web de Infracciones
        ServicioInfracciones webServices = new ServicioInfracciones();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarCombobox();
            }
        }

        public void llenarCombobox()
        {
            InfractorRepository infractorRepository = new BInfractorRepository();
            AgenteRepository agenteRepository = new BAgenteRepository();
            VehiculoRepository vehiculoRepository = new BVehiculoRepository();
            InfraccionRepository infraccionRepository = new BInfraccionRepository();
            SecretariaDeTransitoRepository SecretariaRepository = new BSecretariaDeTransitoRepository();

            ddlInfractor.DataSource = infractorRepository.All();
            ddlInfractor.DataTextField = "NombresCompleto";
            ddlInfractor.DataValueField = "Id";
            ddlInfractor.DataBind();

            ddlAgente.DataSource = agenteRepository.All();
            ddlAgente.DataTextField = "Nombres";
            ddlAgente.DataValueField = "Id";
            ddlAgente.DataBind();

            ddlVehiculo.DataSource = vehiculoRepository.All();
            ddlVehiculo.DataTextField = "Vin";
            ddlVehiculo.DataValueField = "Id";
            ddlVehiculo.DataBind();

            ddlInfraccion.DataSource = infraccionRepository.All();
            ddlInfraccion.DataTextField = "Descripcion";
            ddlInfraccion.DataValueField = "Id";
            ddlInfraccion.DataBind();

            ddlSecretaria.DataSource = SecretariaRepository.All();
            ddlSecretaria.DataTextField = "RazonSocial";
            ddlSecretaria.DataValueField = "Id";
            ddlSecretaria.DataBind();

        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            String[] fechaSplit = txtFecha.Text.Split('/');
            int anio = int.Parse(fechaSplit[0]);
            int mes = int.Parse(fechaSplit[1]);
            int dia = int.Parse(fechaSplit[2]);
            

            String numero = txtNumero.Text;
            DateTime fecha = new DateTime(anio, mes, dia);
            String tipoInfractor = ddlTipoInfractor.SelectedValue;
            String estado = ddlEstado.SelectedValue;
            String observacion = txtObservacion.Text; ;
            SecretariaDeTransitoId secretariaTransitoId = new SecretariaDeTransitoId(ddlSecretaria.SelectedItem.Value);
            VehiculoId vehiculoId = new VehiculoId(ddlVehiculo.SelectedItem.Value); 
            InfraccionId infraccionId = new InfraccionId(ddlInfraccion.SelectedItem.Value); 
            AgenteId agenteId = new AgenteId(ddlAgente.SelectedItem.Value); 
            InfractorId infractorId = new InfractorId(ddlInfractor.SelectedItem.Value);

            String domicilio = txtDomicilio.Text;
            String municipio = txtMunicipio.Text;
            String codigoPostal = txtCodigoPostal.Text;
            String localidad = txtLocalidad.Text;
            Direccion direccion = new Direccion(domicilio,municipio,localidad,codigoPostal  );

            webServices.GuardarComparendo(numero, fecha, tipoInfractor, estado, observacion, secretariaTransitoId,
                                                        vehiculoId, infraccionId, agenteId, infractorId, direccion);
            
            lblMensaje.Text = "Comparendo insertado exitosamente.";
        }
    }
}